const { Sequelize } = require("sequelize");

module.exports = (sequelize, DataTypes) => {
  const Project = sequelize.define(
    "project",
    {
      projectName: {
        type: DataTypes.STRING(50),
        allowNull: false,
      },
      creator: {
        type: DataTypes.STRING(50),
        allowNull: false,
      },
      creatorId: {
        type: DataTypes.INTEGER,
        allowNull: false,
      },
      createdAt: {
        type: DataTypes.DATE,
        defaultValue: Sequelize.NOW, // 设置默认值为当前时间
      },
      detail: {
        type: DataTypes.TEXT,
      },
      invitationCode: {
        type: DataTypes.STRING(10),
      },
      status: {
        type: DataTypes.STRING(10),
        allowNull: false,
        defaultValue: "进行中", // 默认为 进行中
        validate: {
          isIn: [["进行中", "已完成", "已终止"]],
        },
      },
    },
    {
      freezeTableName: true, //不使用sequelize给模型自定义的表名（自定义表名的命名规则：模型名后加s）
      timestamps: false, //若为true，在获取数据时，会自动添加两列数据（createdAt、updateTime）
    }
  );
  return Project;
};
